#ifndef _TOU_H
#define _TOU_H

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#include <malloc.h>
#include <string.h>
#include <sys/select.h>
#include <sys/time.h>
#include <sys/epoll.h>
#include <sqlite3.h>
#include <stdlib.h>
#include <termio.h>
#include <sys/wait.h>
#include <errno.h>
#include <signal.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <dirent.h>
#include <semaphore.h>
#include <sys/sem.h>
#include "signalLamp.h"


//消息的意图/类型
#define REGISTER 0  //注册信息
#define INQUIRE 1 //注册手机号查询
#define LOGIN 2 //登录
#define RETRIEVE 3 //找密
#define CHAT_GROUP 5 //群聊
#define LOGOUT 6 //退出系统
#define FINDACCOUNT 7 //查找账号
#define ADDFREIND 8 //添加好友
#define LOGOFF 9 //退出登录
#define XXX 10 //结束传递
#define ALLMES 11//查看所有信息
#define YICHA 12 //已查看
#define ALONEJIA 13//加入聊天
#define ALONETUI 14//退出聊天
#define ALONECHAT 15//发送聊天

#define YES 100
#define NO  101
#define MES_BUF_SIZE 1024

//传送结构体
typedef struct buf{
    unsigned char choice;    //选择
    char buf[MES_BUF_SIZE-1];
}BUF;

//用户信息结构体
typedef struct userInit{
    char PhoneNumber[20];  //手机号
    char UserName[128];
    char RetrieveQuestion[128]; //找回问题
    char QuestionAnswer[128];   //问题答案
    char AccountNumber[20];     //账号
    char Password[20];           //密码
}USERMES;

typedef struct ccc{ //申请
    char sq[1023];
}TT;

typedef struct fasong{
    char haoyou[20];  //对方账号
    char neirong[980]; //消息内容
    char ziji[20];     //自己账号
}FASONG;

//储存数字
typedef struct math{
    int quantity;
}COUNT;

//服务端套接字
int SERVERFD;
//传送结构体
BUF *USERBUF;

//链接服务器
void linkedServer(void);

//注册函数
void zhuce(BUF *buf);
//登陆函数
int denglu(BUF *buf);
//查找添加好友
void addFriend(BUF *BF);

#endif